package com.toolServlet;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.ArrayList;
import com.dom.user;
import com.mysql.mysqlConnect;

public class userManager extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        /*
            接受get请求，通过url传参进行功能选择
         */
        // 获取action值
        String action = request.getParameter("action");
        if (action == null)
        {
            // 若action为空，执行默认操作
            // 连接数据库，返回数据库连接实例
            mysqlConnect connect = new mysqlConnect();
            // 连接数据库，返回所有用户的信息
            ArrayList<user> users = (ArrayList<user>) connect.selectAllUser("select * from users");
            // 对用户信息进行甄别
            // 此处的管理只针对普通用户，所有在此处将所有的管理员用户剔除
            for (int i=0; i<users.size(); i++)
            {
                user temp = users.get(i);
                // 判断是否为管理员
                if (temp.getType() == 1)
                {
                    users.remove(i);
                }
            }
            // 传入用户信息，返回jsp
            request.getSession().setAttribute("users", users);
            response.sendRedirect("checkUser.jsp");
        }
        else if (action.equals("delete"))
        {
            // 若action为delete，进行删除用户名信息操作
            // 获取用户名
            String name = request.getParameter("name");
            // 获取页面上的用户信息
            ArrayList<user> users = (ArrayList<user>) request.getSession().getAttribute("users");
            // 此处对页面信息进行删除。通过比对用户名删除目标用户
            for (int i=0; i<users.size(); i++)
            {
                user temp = users.get(i);
                // 比对成功，删除
                if (temp.getName().equals(name))
                {
                    users.remove(i);
                }
            }
            // 连接数据库，删除用户信息
            mysqlConnect connect = new mysqlConnect();
            connect.deleteUser(name);
            // 创建新的连接，删除该用户的未审核事件信息
            connect = new mysqlConnect();
            connect.deleteTempInfoByName(name);
            // 创建新的连接，删除该用户的已经通过审核的事件信息
            connect = new mysqlConnect();
            connect.deleteInfoByName(name);
            // 传入新数据，返回jsp
            request.getSession().setAttribute("users", users);
            response.sendRedirect("checkUser.jsp");
        }
    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        /*
            接受post请求，直接跳转到post下
         */
        super.doPost(request, response);
    }

}
